<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of produtos_opcional_valor_model
 *
 * @author souzadavi
 */
class Produtos_opcional_valor_model extends CI_Model {

    //put your code here

    public function __construct() {
        parent::__construct();
        $this->load->config('parametros');
    }

    public function get_nome($_nome) {
        $this->db->where('nome', trim($_nome));
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultar_produto_combo($_cat_pai = null, $_categoria = null) {
        $this->db->select('pov.ec_produtos_id, pi.nome, pov.ec_produtos_opcional_id');

        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalAtributoInfo') . ' as pi', 'pi.atributo_id = pov.ec_produtos_opcional_atributo_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutos') . ' as p', 'p.id = pov.ec_produtos_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria') . ' as pc', 'p.categoria_id = pc.id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . ' as li', 'li.id = pi.idiomas_id', 'INNER');

        $this->db->where('li.codigo', $this->config->item('language'));

        if ($_cat_pai != null) {
            //pre('entrou if');
            $this->db->where('pc.pai_cat', $_cat_pai);
        } else if ($_categoria != null) {
            //pre('entrou else');
            $this->db->where('pc.id', $_categoria);
        }
        $this->db->order_by('pc.id', 'ASC');

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor') . ' as pov');

        //pre($this->db->last_query());

        if ($query->num_rows() > 0) {
            $option = array();
            foreach ($query->result() as $key => $value) {
                //o numero 2 no if é o id da característica tamanho
                //if ($value->ec_produtos_opcional_id == 2) {
                $option[$value->ec_produtos_id] = $value->nome;
                //}
            }
            return $option;
        } else {
            return array();
        }
    }
    
    
    /*public function contular_produto_categoria(){
        $this->db->select('pov.ec_produtos_id, pi.nome, pov.ec_produtos_opcional_id, p.categoria_id');

        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalAtributoInfo') . ' as pi', 'pi.atributo_id = pov.ec_produtos_opcional_atributo_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutos') . ' as p', 'p.id = pov.ec_produtos_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria') . ' as pc', 'p.categoria_id = pc.id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . ' as li', 'li.id = pi.idiomas_id', 'INNER');

        $this->db->where('li.codigo', $this->config->item('language'));

        $this->db->group_by('p.categoria_id');

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor') . ' as pov');

        pre($this->db->last_query());

        if ($query->num_rows() > 0) {
            $option = array();
            return $query->result();
        } else {
            return array();
        }
    }*/
    
    public function consultar_produto_detalhes($_cat_pai = null, $_categoria = null) {
        $this->db->select('pov.ec_produtos_id, pi.nome, pov.ec_produtos_opcional_id, p.categoria_id');

        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalAtributoInfo') . ' as pi', 'pi.atributo_id = pov.ec_produtos_opcional_atributo_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutos') . ' as p', 'p.id = pov.ec_produtos_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosCategoria') . ' as pc', 'p.categoria_id = pc.id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . ' as li', 'li.id = pi.idiomas_id', 'INNER');

        $this->db->where('li.codigo', $this->config->item('language'));

        if ($_cat_pai != null) {
            //pre('entrou if');
            $this->db->where('pc.pai_cat', $_cat_pai);
        } else if ($_categoria != null) {
            //pre('entrou else');
            $this->db->where('pc.id', $_categoria);
        }
        $this->db->order_by('pc.id', 'ASC');

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor') . ' as pov');

        //pre($this->db->last_query());

        if ($query->num_rows() > 0) {
            $option = array();
            return $query->result();
        } else {
            return array();
        }
    }
    

    public function consultar_produto($_id_produto) {
        $this->db->select('pi.nome, poi.nome as caracteristica');
        
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalAtributoInfo') . ' as pi', 'pi.atributo_id = pov.ec_produtos_opcional_atributo_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalInfo') . ' as poi', 'poi.opcional_id = pov.ec_produtos_opcional_id', 'INNER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . ' as li', 'li.id = pi.idiomas_id and li.id = poi.idiomas_id', 'INNER');

        $this->db->where('li.codigo', $this->config->item('language'));
        $this->db->where('pov.ec_produtos_id', $_id_produto);

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor') . ' as pov');
        //pre($this->db->last_query());
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultar($_id_produto, $_opcional_id) {
        $this->db->where('ec_produtos_id', $_id_produto);
        $this->db->where('ec_produtos_opcional_id', $_opcional_id);
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));

        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultar_total() {
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function cadastrar($_dados = array()) {
        $this->db->set($_dados);
        $this->db->insert($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));
        if ($this->db->affected_rows() > 0) {
            return $this->db->insert_id();
        } else {
            return NULL;
        }
    }

    public function alterar($_id, $_dados = array()) {
        $this->db->where('id', $_id);
        $this->db->set($_dados);
        $this->db->update($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));
        if ($this->db->affected_rows() > 0) {
            return $_id;
        } else {
            return NULL;
        }
    }

    public function excluir($_id) {
        $this->db->where('id', $_id);
        $this->db->delete($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));
        if ($this->db->affected_rows() > 0) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function excluir_produto($_id_produto) {
        $this->db->where('ec_produtos_id', $_id_produto);
        $this->db->delete($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor'));
        if ($this->db->affected_rows() > 0) {
            return TRUE;
        } else {
            return NULL;
        }
    }

}